<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta name="generator" content="Doxygen 1.9.4" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>NumCpp: Cartesian.hpp Source File</title>
    <link href="tabs.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="dynsections.js"></script>
    <link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
    <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="doxygen.css" rel="stylesheet" type="text/css" />
    <link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
    <!-- ... other metadata & script includes ... -->
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeDarkModeToggle.init()
    </script>
    <script type="text/javascript"
        src="../doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeFragmentCopyButton.init()
    </script>
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-paragraph-link.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeParagraphLink.init()
    </script>
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-interactive-toc.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeInteractiveToc.init()
    </script>
</head>
<body>
    <div id="top">
        <!-- do not remove this div, it is closed by doxygen! -->
        <div id="titlearea">
            <table cellspacing="0" cellpadding="0">
                <tbody>
                    <tr style="height: 56px;">
                        <td id="projectlogo"><img alt="Logo" src="NumCppLogoDoxygen.png" /></td>
                        <td id="projectalign" style="padding-left: 0.5em;">
                            <div id="projectname">NumCpp
                                &#160;<span id="projectnumber">2.12.1</span>
                            </div>
                            <div id="projectbrief">A Templatized Header Only C++ Implementation of the Python NumPy Library</div>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
        <!-- end header part --><!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('_cartesian_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">Cartesian.hpp</div></div>
</div><!--header-->
<div class="contents">
<a href="_cartesian_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#include &quot;<a class="code" href="_nd_array_8hpp.html">NumCpp/NdArray.hpp</a>&quot;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#include &quot;<a class="code" href="essentially_equal_8hpp.html">NumCpp/Utils/essentiallyEqual.hpp</a>&quot;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#include &quot;<a class="code" href="sqr_8hpp.html">NumCpp/Utils/sqr.hpp</a>&quot;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#include &quot;<a class="code" href="_vec2_8hpp.html">NumCpp/Vector/Vec2.hpp</a>&quot;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="_vec3_8hpp.html">NumCpp/Vector/Vec3.hpp</a>&quot;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacenc.html">   39</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacenc_1_1coordinates.html">nc::coordinates</a></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>{</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html">   44</a></span>    <span class="keyword">class </span><a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>    {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">   47</a></span>        <span class="keywordtype">double</span> <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>{ 0. };</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">   48</a></span>        <span class="keywordtype">double</span> <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>{ 0. };</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">   49</a></span>        <span class="keywordtype">double</span> <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a>{ 0. };</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#acd2bb91863149c37e73b9e8ae2a50cf5">   54</a></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#acd2bb91863149c37e73b9e8ae2a50cf5">Cartesian</a>() noexcept = default;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#aa74480eb4341f82afdde5f3b42fc7be6">   63</a></span>        constexpr <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>(<span class="keywordtype">double</span> inX, <span class="keywordtype">double</span> inY, <span class="keywordtype">double</span> inZ = 0.) noexcept :</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>(inX),</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>(inY),</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a>(inZ)</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>        {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>        }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#aa75a22a2b9c18d411bf9a1ab45cdda7f">   75</a></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#aa75a22a2b9c18d411bf9a1ab45cdda7f">Cartesian</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1_vec2.html">Vec2</a>&amp; inCartesianVector) :</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>(inCartesianVector.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>),</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>(inCartesianVector.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>        {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>        }</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a0609eebe94bc5c9acfaf74439083ed8d">   86</a></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a0609eebe94bc5c9acfaf74439083ed8d">Cartesian</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1_vec3.html">Vec3</a>&amp; inCartesianVector) :</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>(inCartesianVector.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>),</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>(inCartesianVector.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>),</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a>(inCartesianVector.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a>)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>        {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>        }</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>        <span class="comment">//============================================================================</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#af7341561984039aca2b984078b12b662">   98</a></span><span class="comment"></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#af7341561984039aca2b984078b12b662">Cartesian</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1_nd_array.html">NdArray&lt;double&gt;</a>&amp; inCartesianVector)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>        {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>            <span class="keywordflow">if</span> (inCartesianVector.<a class="code hl_function" href="classnc_1_1_nd_array.html#a055875abbe80163ca91328c0fa8ffbfa">size</a>() != 3)</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>            {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>                <a class="code hl_define" href="_error_8hpp.html#af2aff1172060367b9c5398fa097fa8fd">THROW_INVALID_ARGUMENT_ERROR</a>(<span class="stringliteral">&quot;NdArray input must be of length 3.&quot;</span>);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>            }</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a> = inCartesianVector[0];</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a> = inCartesianVector[1];</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>            <a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a> = inCartesianVector[2];</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>        }</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a84c445fd28ba4c60f7dd0ff344ac7b9c">  115</a></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a84c445fd28ba4c60f7dd0ff344ac7b9c">Cartesian</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; other) <span class="keyword">noexcept</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#aadcee3796bcc3b8abb92fce83b678359">  122</a></span>        <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#aadcee3796bcc3b8abb92fce83b678359">Cartesian</a>(<a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp;&amp; other) <span class="keyword">noexcept</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a6103f46e12b66ef0ab6f344a0688f228">  127</a></span>        <span class="keyword">virtual</span> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a6103f46e12b66ef0ab6f344a0688f228">~Cartesian</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a6b5105edf6bf35a3558649f867fac174">  134</a></span>        <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a6b5105edf6bf35a3558649f867fac174">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; other) <span class="keyword">noexcept</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#afc01ac8b65b9ffceb446ea9e38b80857">  141</a></span>        <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#afc01ac8b65b9ffceb446ea9e38b80857">operator=</a>(<a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp;&amp; other) <span class="keyword">noexcept</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a74a6b94c9cec014f10eb413fd7bd0ea0">  148</a></span>        [[nodiscard]] <span class="keyword">static</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a74a6b94c9cec014f10eb413fd7bd0ea0">xHat</a>() noexcept</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>        {</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>            <span class="keywordflow">return</span> { 1., 0., 0. };</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>        }</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#ac149f2d7075f8b145000b7edfdf035e2">  158</a></span>        [[nodiscard]] <span class="keyword">static</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#ac149f2d7075f8b145000b7edfdf035e2">yHat</a>() noexcept</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>        {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>            <span class="keywordflow">return</span> { 0., 1., 0. };</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>        }</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a6a34b091a9bf8f03654a533bb469f66c">  168</a></span>        [[nodiscard]] <span class="keyword">static</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a6a34b091a9bf8f03654a533bb469f66c">zHat</a>() noexcept</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>        {</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>            <span class="keywordflow">return</span> { 0., 0., 1. };</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>        }</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a1132e1a80da9af3c8570b58c6d8e5d50">  179</a></span>        <span class="keywordtype">bool</span> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a1132e1a80da9af3c8570b58c6d8e5d50">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>        {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>            <span class="keywordflow">return</span> <a class="code hl_function" href="namespacenc_1_1utils.html#a963b90e7c9a3b057a924298750ddf74c">utils::essentiallyEqual</a>(<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a>, other.x) &amp;&amp; <a class="code hl_function" href="namespacenc_1_1utils.html#a963b90e7c9a3b057a924298750ddf74c">utils::essentiallyEqual</a>(<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a>, other.y) &amp;&amp;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>                   <a class="code hl_function" href="namespacenc_1_1utils.html#a963b90e7c9a3b057a924298750ddf74c">utils::essentiallyEqual</a>(<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a>, other.z);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>        }</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classnc_1_1coordinates_1_1_cartesian.html#a02a051a87ae35e876972c09acd482012">  191</a></span>        <span class="keywordtype">bool</span> <a class="code hl_function" href="classnc_1_1coordinates_1_1_cartesian.html#a02a051a87ae35e876972c09acd482012">operator!=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>        {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>            <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == other);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>        }</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>    };</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a6f5b3b14c6ed16cb8e338175e898e538">  203</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#a6f5b3b14c6ed16cb8e338175e898e538">operator+</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; lhs, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; rhs) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>    {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>        <span class="keywordflow">return</span> { lhs.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a> + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z };</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>    }</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#ab9915ea88507af06a577c392c5a71939">  214</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#ab9915ea88507af06a577c392c5a71939">operator-</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; lhs, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; rhs) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>    {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>        <span class="keywordflow">return</span> { lhs.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a> - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z };</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>    }</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">  225</a></span>    [[nodiscard]] <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">operator*</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; lhs, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; rhs) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>    {</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>        <span class="keywordflow">return</span> lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>    }</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a3582936f7db85a7d9831e9a2402496f9">  236</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">operator*</a>(<span class="keywordtype">double</span> scalar, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>    {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span>        <span class="keywordflow">return</span> { vec.x * scalar, vec.y * scalar, vec.z * scalar };</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>    }</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a0c65cebf40f1ceebbbf80fc56e2d4bdf">  247</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">operator*</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec, <span class="keywordtype">double</span> scalar) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>    {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span>        <span class="keywordflow">return</span> scalar * vec;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>    }</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#af4708307f7b94f72b403c52bb10e81a4">  258</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#af4708307f7b94f72b403c52bb10e81a4">operator/</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec, <span class="keywordtype">double</span> denominator) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>    {</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span>        <span class="keywordflow">return</span> vec * (1.0 / denominator);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span>    }</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a2f71fe712d74cf7677ad64e770761d95">  269</a></span>    <span class="keyword">inline</span> std::ostream&amp; <a class="code hl_function" href="namespacenc_1_1coordinates.html#a2f71fe712d74cf7677ad64e770761d95">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec)</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span>    {</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span>        os &lt;&lt; <span class="stringliteral">&quot;Cartesian(x=&quot;</span> &lt;&lt; vec.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">x</a> &lt;&lt; <span class="stringliteral">&quot;, y=&quot;</span> &lt;&lt; vec.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a> &lt;&lt; <span class="stringliteral">&quot;, z=&quot;</span> &lt;&lt; vec.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">z</a> &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span>        <span class="keywordflow">return</span> os;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span>    }</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a21d2802b6436b5e7a57a933b8070c75c">  282</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#a21d2802b6436b5e7a57a933b8070c75c">cross</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec1, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec2) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>    {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>        <span class="keywordflow">return</span> { vec1.<a class="code hl_variable" href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">y</a> * vec2.z - vec1.z * vec2.y,</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>                 -(vec1.x * vec2.z - vec1.z * vec2.x),</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>                 vec1.x * vec2.y - vec1.y * vec2.x };</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>    }</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span> </div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">  295</a></span>    [[nodiscard]] <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">norm</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span>    {</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>        <span class="keywordflow">return</span> <a class="code hl_function" href="namespacenc.html#a4648674053cd83851d9549bbcc7a8481">std::hypot</a>(vec.x, vec.y, vec.z);</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">  306</a></span>    [[nodiscard]] <span class="keyword">inline</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> <a class="code hl_function" href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">normalize</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>    {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span>        <span class="keywordflow">return</span> vec / <a class="code hl_function" href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">norm</a>(vec);</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>    }</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="namespacenc_1_1coordinates.html#a3d30468a53ed69d88df51039e1d80720">  318</a></span>    [[nodiscard]] <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code hl_function" href="namespacenc_1_1coordinates.html#a3d30468a53ed69d88df51039e1d80720">angle</a>(<span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec1, <span class="keyword">const</span> <a class="code hl_class" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&amp; vec2) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>    {</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>        <span class="keywordflow">return</span> std::acos(<a class="code hl_function" href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">normalize</a>(vec1) * <a class="code hl_function" href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">normalize</a>(vec2));</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>    }</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>} <span class="comment">// namespace nc::coordinates</span></div>
<div class="ttc" id="a_error_8hpp_html_af2aff1172060367b9c5398fa097fa8fd"><div class="ttname"><a href="_error_8hpp.html#af2aff1172060367b9c5398fa097fa8fd">THROW_INVALID_ARGUMENT_ERROR</a></div><div class="ttdeci">#define THROW_INVALID_ARGUMENT_ERROR(msg)</div><div class="ttdef"><b>Definition:</b> Error.hpp:37</div></div>
<div class="ttc" id="a_nd_array_8hpp_html"><div class="ttname"><a href="_nd_array_8hpp.html">NdArray.hpp</a></div></div>
<div class="ttc" id="a_vec2_8hpp_html"><div class="ttname"><a href="_vec2_8hpp.html">Vec2.hpp</a></div></div>
<div class="ttc" id="a_vec3_8hpp_html"><div class="ttname"><a href="_vec3_8hpp.html">Vec3.hpp</a></div></div>
<div class="ttc" id="aclassnc_1_1_nd_array_html"><div class="ttname"><a href="classnc_1_1_nd_array.html">nc::NdArray&lt; double &gt;</a></div></div>
<div class="ttc" id="aclassnc_1_1_nd_array_html_a055875abbe80163ca91328c0fa8ffbfa"><div class="ttname"><a href="classnc_1_1_nd_array.html#a055875abbe80163ca91328c0fa8ffbfa">nc::NdArray::size</a></div><div class="ttdeci">size_type size() const noexcept</div><div class="ttdef"><b>Definition:</b> NdArrayCore.hpp:4524</div></div>
<div class="ttc" id="aclassnc_1_1_vec2_html"><div class="ttname"><a href="classnc_1_1_vec2.html">nc::Vec2</a></div><div class="ttdoc">Holds a 2D vector.</div><div class="ttdef"><b>Definition:</b> Vec2.hpp:49</div></div>
<div class="ttc" id="aclassnc_1_1_vec3_html"><div class="ttname"><a href="classnc_1_1_vec3.html">nc::Vec3</a></div><div class="ttdoc">Holds a 3D vector.</div><div class="ttdef"><b>Definition:</b> Vec3.hpp:51</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html">nc::coordinates::Cartesian</a></div><div class="ttdoc">Cartensian coordinates.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:45</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a02a051a87ae35e876972c09acd482012"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a02a051a87ae35e876972c09acd482012">nc::coordinates::Cartesian::operator!=</a></div><div class="ttdeci">bool operator!=(const Cartesian &amp;other) const noexcept</div><div class="ttdoc">Non-Equality Operator.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:191</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a0609eebe94bc5c9acfaf74439083ed8d"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a0609eebe94bc5c9acfaf74439083ed8d">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian(const Vec3 &amp;inCartesianVector)</div><div class="ttdoc">Default Constructor.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:86</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a1132e1a80da9af3c8570b58c6d8e5d50"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a1132e1a80da9af3c8570b58c6d8e5d50">nc::coordinates::Cartesian::operator==</a></div><div class="ttdeci">bool operator==(const Cartesian &amp;other) const noexcept</div><div class="ttdoc">Non-Equality Operator.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:179</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a6103f46e12b66ef0ab6f344a0688f228"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a6103f46e12b66ef0ab6f344a0688f228">nc::coordinates::Cartesian::~Cartesian</a></div><div class="ttdeci">virtual ~Cartesian()=default</div><div class="ttdoc">Destructor.</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a6a34b091a9bf8f03654a533bb469f66c"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a6a34b091a9bf8f03654a533bb469f66c">nc::coordinates::Cartesian::zHat</a></div><div class="ttdeci">static Cartesian zHat() noexcept</div><div class="ttdoc">z Unit Vector</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:168</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a6b5105edf6bf35a3558649f867fac174"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a6b5105edf6bf35a3558649f867fac174">nc::coordinates::Cartesian::operator=</a></div><div class="ttdeci">Cartesian &amp; operator=(const Cartesian &amp;other) noexcept=default</div><div class="ttdoc">Copy Assignement Operator.</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a74a6b94c9cec014f10eb413fd7bd0ea0"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a74a6b94c9cec014f10eb413fd7bd0ea0">nc::coordinates::Cartesian::xHat</a></div><div class="ttdeci">static Cartesian xHat() noexcept</div><div class="ttdoc">x Unit Vector</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:148</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a84c445fd28ba4c60f7dd0ff344ac7b9c"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a84c445fd28ba4c60f7dd0ff344ac7b9c">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian(const Cartesian &amp;other) noexcept=default</div><div class="ttdoc">Copy Constructor.</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_a9f51fd4fa6aad2c318df86588ed6a34f"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#a9f51fd4fa6aad2c318df86588ed6a34f">nc::coordinates::Cartesian::z</a></div><div class="ttdeci">double z</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:49</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_aa75a22a2b9c18d411bf9a1ab45cdda7f"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#aa75a22a2b9c18d411bf9a1ab45cdda7f">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian(const Vec2 &amp;inCartesianVector)</div><div class="ttdoc">Default Constructor.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:75</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_aadcee3796bcc3b8abb92fce83b678359"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#aadcee3796bcc3b8abb92fce83b678359">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian(Cartesian &amp;&amp;other) noexcept=default</div><div class="ttdoc">Move Constructor.</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_ac149f2d7075f8b145000b7edfdf035e2"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#ac149f2d7075f8b145000b7edfdf035e2">nc::coordinates::Cartesian::yHat</a></div><div class="ttdeci">static Cartesian yHat() noexcept</div><div class="ttdoc">y Unit Vector</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:158</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_ac77a08a542ba4d873c0a86047b25953d"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#ac77a08a542ba4d873c0a86047b25953d">nc::coordinates::Cartesian::y</a></div><div class="ttdeci">double y</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:48</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_acd2bb91863149c37e73b9e8ae2a50cf5"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#acd2bb91863149c37e73b9e8ae2a50cf5">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian() noexcept=default</div><div class="ttdoc">Default Constructor.</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_add44d8cd4ee04ef61120fc0c0d12e550"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#add44d8cd4ee04ef61120fc0c0d12e550">nc::coordinates::Cartesian::x</a></div><div class="ttdeci">double x</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:47</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_af7341561984039aca2b984078b12b662"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#af7341561984039aca2b984078b12b662">nc::coordinates::Cartesian::Cartesian</a></div><div class="ttdeci">Cartesian(const NdArray&lt; double &gt; &amp;inCartesianVector)</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:98</div></div>
<div class="ttc" id="aclassnc_1_1coordinates_1_1_cartesian_html_afc01ac8b65b9ffceb446ea9e38b80857"><div class="ttname"><a href="classnc_1_1coordinates_1_1_cartesian.html#afc01ac8b65b9ffceb446ea9e38b80857">nc::coordinates::Cartesian::operator=</a></div><div class="ttdeci">Cartesian &amp; operator=(Cartesian &amp;&amp;other) noexcept=default</div><div class="ttdoc">Move Assignement Operator.</div></div>
<div class="ttc" id="aessentially_equal_8hpp_html"><div class="ttname"><a href="essentially_equal_8hpp.html">essentiallyEqual.hpp</a></div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html"><div class="ttname"><a href="namespacenc_1_1coordinates.html">nc::coordinates</a></div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:40</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a061f64eae40b8086f97e56f5ae8f295d"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">nc::coordinates::norm</a></div><div class="ttdeci">double norm(const Cartesian &amp;vec) noexcept</div><div class="ttdoc">Vector norm.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:295</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a21d2802b6436b5e7a57a933b8070c75c"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a21d2802b6436b5e7a57a933b8070c75c">nc::coordinates::cross</a></div><div class="ttdeci">Cartesian cross(const Cartesian &amp;vec1, const Cartesian &amp;vec2) noexcept</div><div class="ttdoc">Vector cross product.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:282</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a2f71fe712d74cf7677ad64e770761d95"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a2f71fe712d74cf7677ad64e770761d95">nc::coordinates::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const Cartesian &amp;vec)</div><div class="ttdoc">Stream operator.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:269</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a3d30468a53ed69d88df51039e1d80720"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a3d30468a53ed69d88df51039e1d80720">nc::coordinates::angle</a></div><div class="ttdeci">double angle(const Cartesian &amp;vec1, const Cartesian &amp;vec2) noexcept</div><div class="ttdoc">angle between the two vectors</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:318</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a6f5b3b14c6ed16cb8e338175e898e538"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a6f5b3b14c6ed16cb8e338175e898e538">nc::coordinates::operator+</a></div><div class="ttdeci">Cartesian operator+(const Cartesian &amp;lhs, const Cartesian &amp;rhs) noexcept</div><div class="ttdoc">Addition of two cartesian points.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:203</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_a999f3588049a4aae8d0a6bbdce9046d2"><div class="ttname"><a href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">nc::coordinates::normalize</a></div><div class="ttdeci">Cartesian normalize(const Cartesian &amp;vec) noexcept</div><div class="ttdoc">normalize the input vector</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:306</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_ab9915ea88507af06a577c392c5a71939"><div class="ttname"><a href="namespacenc_1_1coordinates.html#ab9915ea88507af06a577c392c5a71939">nc::coordinates::operator-</a></div><div class="ttdeci">Cartesian operator-(const Cartesian &amp;lhs, const Cartesian &amp;rhs) noexcept</div><div class="ttdoc">Subtraction of two cartesian points.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:214</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_af1e4aa015b409852cbcd25eda9481655"><div class="ttname"><a href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">nc::coordinates::operator*</a></div><div class="ttdeci">double operator*(const Cartesian &amp;lhs, const Cartesian &amp;rhs) noexcept</div><div class="ttdoc">Dot product of two cartesian points.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:225</div></div>
<div class="ttc" id="anamespacenc_1_1coordinates_html_af4708307f7b94f72b403c52bb10e81a4"><div class="ttname"><a href="namespacenc_1_1coordinates.html#af4708307f7b94f72b403c52bb10e81a4">nc::coordinates::operator/</a></div><div class="ttdeci">Cartesian operator/(const Cartesian &amp;vec, double denominator) noexcept</div><div class="ttdoc">Scalar Division a cartesian point.</div><div class="ttdef"><b>Definition:</b> Cartesian.hpp:258</div></div>
<div class="ttc" id="anamespacenc_1_1utils_html_a963b90e7c9a3b057a924298750ddf74c"><div class="ttname"><a href="namespacenc_1_1utils.html#a963b90e7c9a3b057a924298750ddf74c">nc::utils::essentiallyEqual</a></div><div class="ttdeci">bool essentiallyEqual(dtype inValue1, dtype inValue2) noexcept</div><div class="ttdef"><b>Definition:</b> essentiallyEqual.hpp:49</div></div>
<div class="ttc" id="anamespacenc_html_a4648674053cd83851d9549bbcc7a8481"><div class="ttname"><a href="namespacenc.html#a4648674053cd83851d9549bbcc7a8481">nc::hypot</a></div><div class="ttdeci">double hypot(dtype inValue1, dtype inValue2) noexcept</div><div class="ttdef"><b>Definition:</b> hypot.hpp:56</div></div>
<div class="ttc" id="asqr_8hpp_html"><div class="ttname"><a href="sqr_8hpp.html">sqr.hpp</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_34171bd951b13a53aa9f237277a18e40.html">NumCpp</a></li><li class="navelem"><a class="el" href="dir_821f0d92e31f34ac47de77ab611d6024.html">Coordinates</a></li><li class="navelem"><a class="el" href="_cartesian_8hpp.html">Cartesian.hpp</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
  </ul>
</div>
</body>
</html>
